#ifndef _OPTIMIZER_H
#define _OPTIMiZER_H

#include "KeyTemplate.h"

#include <string>
using namespace std;

class Optimizer
{

public:
	Optimizer();
	virtual ~Optimizer();

	Optimizer(const Optimizer& source);
	Optimizer& operator = (const Optimizer& source);

public:
	//일반 함수
	//해당 주소의 html문서의 본문 검색 키 값을 결정한다.
	void SetSearchKey( string item_lik );
	
	//유효한 블로그 검사 후 본문을 읽어온다.
	void ReadDescription( string item_title );

	//본문의 불필요한 태그를 지운다.
	void RemoveUnessentialTag();

	//해당 본문에 포함된 이미지를 리사이징한다.
	void RenderingImage();

	//최적화한 본문을 html문서로 만든다.
	void MakeHtmlDocument();

	//embed 태그를 IMG태그로 바꾸고 크기 선언빼고, src="..."만 남긴다.
	void FilteringEmbedTag();
		
	//해당 전송폴더에 html문서를 넣고 이미지와 압축하고 본 폴더를 지운다.
	bool MakeSendingZipFile();

	//전송하고 남아있는 압축파일을 지운다.
	void RemoveSendedZipFile();

	
public:
	//get 함수
	string& GetDescription() const;
	string& GetHtml() const;
	string& GetTitle() const;
	string& GetDescKey() const;

	
private:
	
	string descKey;       //결정된 본문 키값
	string newDocument;   //1차 기억장치
	
	string title;         //Item의 제목
	string description;   //Item의 링크에서 찾은 본문
	
	string html;          //새로 생성한 웹문서

	KeyTemplate key;      //검새키값을 가지는 클래스 자료형


	//이미지 관련 속성
	int imageHeight;
	int imageWidth;
	
	string imageLink;

};

inline string& Optimizer::GetTitle() const
{
	return const_cast<string&>(this->title);
}

inline string& Optimizer::GetDescription() const
{
	return const_cast<string&>(this->description);
}

inline string& Optimizer::GetHtml() const
{
	return const_cast<string&>(this->html);
}

inline string& Optimizer::GetDescKey() const
{
	return const_cast<string&>(this->descKey);
}

#endif

